package com.example.wszb;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

import java.sql.Connection;

public class LoginActivity extends AppCompatActivity {    //登录页面
    DataLogin temp = new DataLogin();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);


        ActionBar actionBar = getSupportActionBar();
        if(actionBar!=null)
            actionBar.hide();

        Button regist = findViewById(R.id.btn_register);//注册Button实例化   注册
        regist.setOnClickListener(new View.OnClickListener() {//设置点击注册的操作
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LoginActivity.this,RegActivity.class);//Intent转换，实例化intent
                startActivity(intent);//跳转到注册页面RegActivity
            }
        });

        TextView replace = findViewById(R.id.textView_replace);//注册Button实例化   忘记密码
        replace.setOnClickListener(new View.OnClickListener() {//设置点击忘记密码的操作
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LoginActivity.this,ReplaceActivity.class);//Intent转换，实例化intent
                startActivity(intent);//跳转到注册页面ReplaceActivity
            }
        });


        Button login = (Button) findViewById(R.id.btn_login);//登录Button实例化。
        login.setOnClickListener(new View.OnClickListener() {//设置点击登录的操作
            @Override
            public void onClick(View v) {
                //获取账号、密码输入文本并转换为字符类型，然后调用Data中的Login登录方法，传入账号、密码参数，返回一个布尔代数作判断。
                String account = ((EditText) findViewById(R.id.edit_account)).getText().toString();
                String password = ((EditText) findViewById(R.id.edit_password)).getText().toString();
                DataLogin user = new DataLogin(account, password);   //将账号密码放在DataLogin类中
                temp.setAccount(user.getAccount());
                //新开线程用数据库查询是否登录成功
                DBHelp dbhelp = new DBHelp();

                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Message message = handler.obtainMessage();
                        message.obj = dbhelp.toLoginAccount(user);//登录账号
                        message.what = dbhelp.getUserId(user);
                        handler.sendMessage(message);   // 发消息通知主线程更新UI
                        /*boolean t = DBHelp.testConnect();
                        Message message = handler.obtainMessage();
                        if( t ){
                            message.obj = "连接数据库成功";
                        }else {
                            message.obj = "连接数据库失败";
                        }
                        // 发消息通知主线程更新UI
                        handler.sendMessage(message);
                        */
                    }
                }).start();
            }
        });
    }
    @SuppressLint("HandlerLeak")
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if( (boolean) msg.obj ){   //登录成功
                Toast.makeText(LoginActivity.this,"登录成功！",Toast.LENGTH_SHORT).show();//生成对象，同时调用show方法显示。
                Intent intent_Main = new Intent(LoginActivity.this,MainActivity.class);//Intent转换，实例化intent
                intent_Main.putExtra("userid", msg.what);
                startActivity(intent_Main);//跳转到主页面MainActivity

            } else{ //登录失败
                Toast.makeText(LoginActivity.this,"登录失败！",Toast.LENGTH_SHORT).show();//生成对象，同时调用show方法显示。
            }
        }
    };
}